//package net.jsoft.pms.service.oracle.versionplan.impl;
//
//import java.text.ParseException;
//import java.util.ArrayList;
//import java.util.Calendar;
//import java.util.Date;
//import java.util.List;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import net.jsoft.platform.core.util.platform.PlatformUtils;
//import net.jsoft.pms.mapper.versionplan.VersionPlanMapper;
//import net.jsoft.pms.service.oracle.versionplan.IVersionPlanService;
//import net.jsoft.pms.vo.plan.PlanTaskInfo;
//
//@Service
//public class VersionPlanServiceImpl implements IVersionPlanService
//{
//    @Autowired
//    private VersionPlanMapper mapper;
//
//    //    @Override
//    //    public List<String> getVersions(Date start, Date end)
//    //    {
//    //        List<String> versions = new ArrayList<String>();
//    //
//    //        //所在指定日期的周日与2017-08-14相差几周
//    //        //        long startWeek = (start.getTime() - baseVersionDate.getTime()) / (1000 * 3600 * 24 * 7);
//    //
//    //        String baseVersion = mapper.getParms("BASE_VERSION");
//    //        String baseVersionDateStr = mapper.getParms("BASE_VERSION_DATE");
//    //        Date baseVersionDate = null;
//    //        try
//    //        {
//    //            baseVersionDate = PlatformUtils.getdate(baseVersionDateStr);
//    //        }
//    //        catch (ParseException e)
//    //        {
//    //            e.printStackTrace();
//    //        }
//    //
//    //        long endWeek = PlatformUtils.getWeeks(baseVersionDate, end);
//    //        List<Date> dates = PlatformUtils.getBetweenDates(baseVersionDate, end);
//    //
//    //        List<Date> versionDateAdded = mapper.selectSepcialVersionDate();
//    //        dates.retainAll(versionDateAdded);
//    //        int specialVersionsNum = dates.size();
//    //        long lastVersion = Integer.parseInt(baseVersion) + endWeek + specialVersionsNum;
//    //
//    //        Date initDate = PlatformUtils.getDayByadd(start, -1);
//    //        long startWeek = PlatformUtils.getWeeks(baseVersionDate, initDate);
//    //        List<Date> startDates = PlatformUtils.getBetweenDates(baseVersionDate, initDate);
//    //        startDates.retainAll(Arrays.asList(versionDateAdded));
//    //        int specialVersionsStartNum = startDates.size();
//    //        long startVersion = Integer.parseInt(baseVersion) + startWeek + specialVersionsStartNum;
//    //
//    //        //返回所有版本信息
//    //        for (long i = startVersion + 1; i <= lastVersion; i++)
//    //        {
//    //            versions.add(i + "");
//    //        }
//    //
//    //        return versions;
//    //    }
//
//    @Override
//    public List<String> getVersions()
//    {
//        return mapper.selectVersions();
//    }
//
//    @Override
//    public List<PlanTaskInfo> getNoVersionPlan()
//    {
//        List<PlanTaskInfo> list = mapper.selectNoVersionPlanRisk();
//        return list;
//    }
//
//    @Override
//    public List<PlanTaskInfo> getDelayVersionPlan()
//    {
//
//        List<PlanTaskInfo> list = mapper.selectDelayVersionPlan(getNowVersion() + "");
//        return list;
//    }
//
//    @Override
//    public long getNowVersion()
//    {
//        String baseVersion = mapper.getParms("BASE_VERSION");
//        String baseVersionDateStr = mapper.getParms("BASE_VERSION_DATE");
//        Date baseVersionDate = null;
//        List<Date> dates = new ArrayList<Date>();
//        Date end = null;
//        long endWeek = 0;
//        Calendar cal = Calendar.getInstance();
//        cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //获取本周一的日期
//        cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
//        //增加一个星期，才是我们中国人理解的本周日的日期
//        cal.add(Calendar.WEEK_OF_YEAR, 1);
//        end = cal.getTime();
//        try
//        {
//            baseVersionDate = PlatformUtils.getdate(baseVersionDateStr);
//            endWeek = PlatformUtils.getWeeks(baseVersionDate, end);
//            dates = PlatformUtils.getBetweenDates(baseVersionDate, end);
//        }
//        catch (ParseException e)
//        {
//            e.printStackTrace();
//        }
//
//        List<Date> versionDateAdded = mapper.selectSepcialVersionDate();
//        dates.retainAll(versionDateAdded);
//        int specialVersionsNum = dates.size();
//        long lastVersion = Integer.parseInt(baseVersion) + endWeek + specialVersionsNum;
//        return lastVersion;
//    }
//
//    @Override
//    public List<PlanTaskInfo> getVersionPlan(String version)
//    {
//        return mapper.selectVersionPlan(version);
//    }
//
//    @Override
//    public List<PlanTaskInfo> getPublishVersion(String version)
//    {
//        return mapper.selectPulishVersion(version);
//    }
//
//}
